RESTful API 简介
REST(Representational State Transfer)是一种架构风格,用于设计网络服务。RESTful API 是符合 REST 原则的 Web API,具备统一、简洁、无状态等特性,广泛应用于 Web、移动应用、微服务之间的通信。
🌐 核心理念
RESTful API 的设计基于资源(Resource)而非动作。每个资源通过 URL 表示,使用标准 HTTP 方法进行操作。
🧱 资源与操作映射
HTTP 方法 | 操作类型 | 示例含义 |
---|---|---|
GET | 读取资源 | 获取用户信息 |
POST | 创建资源 | 新建一条订单 |
PUT | 更新资源(完整替换) | 更新整个用户信息 |
PATCH | 局部更新 | 修改用户邮箱 |
DELETE | 删除资源 | 删除某个评论 |
📦 URL 设计规范
# 用户资源
GET /users # 获取所有用户
GET /users/123 # 获取指定用户
POST /users # 创建新用户
PUT /users/123 # 更新用户信息
DELETE /users/123 # 删除用户
# 嵌套资源(如订单)
GET /users/123/orders # 获取用户订单
POST /users/123/orders # 创建订单
tip
URL 使用名词复数,操作通过 HTTP 动作语义体现,无需在 URL 中加动词(如 /getUsers
是反 REST 风格)
📄 示例响应格式(JSON)
{
"id": 123,
"name": "Alice",
"email": "alice@example.com"
}
🔒 身份验证与安全
常用方式:
- Token-Based(如 JWT)
- OAuth2
- API Key
请求示例:
GET /users/123 HTTP/1.1
Authorization: Bearer <token>
🧪 状态码约定
状态码 | 含义 |
---|---|
200 OK | 请求成功 |
201 Created | 成功创建资源 |
204 No Content | 成功但无返回 |
400 Bad Request | 请求参数错误 |
401 Unauthorized | 未认证 |
403 Forbidden | 无权限访问 |
404 Not Found | 资源不存在 |
500 Internal Server Error | 服务器内部异常 |
✨ RESTful vs RPC
特性 | RESTful | RPC(Remote Procedure Call) |
---|---|---|
关注点 | 资源 | 操作 |
接口风格 | URL + HTTP 方法 | 接口名称 + 参数 |
常见格式 | JSON, XML | gRPC, Protobuf |
适合场景 | Web, 移动 API | 内部微服务调用,高性能通信 |